"""
四、随机生成一个密码，并判断密码的强度级别。使用以下字符并利用随机函数产生密码，密码长度随机但限定在2～10之间。编写函数实现功能，返回值是密码的强度级别。(文件名:A4.PY)
所有的大小写字母
数字字符
其它字符(限此8个)：空格、！、@、#、%、^、&、*。

强度级别判断标准如下:
1.位数不少于8位；
2.有数字；
3.有大写字母；
4.有小写字母；
5.有其它字符。
密码强度	强度级别
满足任意1条	1
满足任意2条	2
满足任意3条	3
满足任意4条	4
满足任意5条	5
例：
	123				强度级别1
	Ui					强度级别2
	aXi123			强度级别3
	aXi123456		强度级别4
	aXi12345#6		强度级别5
"""
import random


def password_strength():
    pw_len = random.randint(2,10)
    str_pw_element = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890 !@#%^&*"  # 70
    str_qita = " !@#%^&*"
    # 生成密码
    str_pw =""
    for i in  range(1,pw_len+1):
        str_pw = str_pw + str_pw_element[random.randint(0,69)]

    # print("生成密码的长度为:{}".format(len(str_pw)))
    print("随机生成的密码为:{}".format(str_pw))
    # 判断密码等级
    cnt_s = 0
    is_num,is_letterU,is_letterL,is_qita = False,False,False,False
    if len(str_pw)>=8:
        cnt_s = cnt_s + 1

    for i in str_pw:
        if i.isdigit():
            is_num = True
        if i.islower():
            is_letterL = True
        if i.isupper():
            is_letterU = True
        if i in str_qita:
            is_qita = True

    cnt_s = cnt_s + is_num +is_letterU+is_letterL+is_qita
    if cnt_s == 1:
        return 1
    elif cnt_s == 2:
        return 2
    elif cnt_s == 3:
        return 3
    elif cnt_s == 4:
        return 4
    elif cnt_s == 5:
        return 5

print("密码强度等级为:{}".format(password_strength()))